
// 两数之和 （使用双指针） 使时间复杂度到 O(n)
export function twoNumberSum1(arr: number[], n: number) :number[] {
  const res: number[] = []
  const len = arr.length
  if (len === 0) return res
  // 定义两个指针
  let i = 0
  let j = len - 1
  while (i < j) {
    const sum = arr[i] + arr[j]
    if (sum > n) {
      // 和大于 n 说明需要j 向前移动
      j--
    } else if (sum < n) {
      // 和小于 n 说明需要 i 向后移动
      i++
    } else {
      res.push(arr[i])
      res.push(arr[j])
      break
    }
  }
  return res
}

const arr = [1,2,3,4,5,6,7,8,11]
 console.info(twoNumberSum1(arr, 15))